package com.standardoperationapp.bluetooth;

public class ByteConvert {
//    public static String byteToInt(byte b){
//
//        String re="";
//        int val =b&0xFF;
//        re= Integer.toString(val);
//        return re;
//    }
//
//
//    /*小端，低字节在后*/
//    public static int bytesToIntLittleEndian(byte[] bytes) {
//        // byte数组中序号小的在右边
//        return bytes[0] & 0xFF |
//                (bytes[1] & 0xFF) << 8 |
//                (bytes[2] & 0xFF) << 16 |
//                (bytes[3] & 0xFF) << 24;
//    }
//    /*大端，高字节在后*/
//    public static int bytesToIntBigEndian(byte[] bytes) {
//        // byte数组中序号大的在右边
//        return bytes[3] & 0xFF |
//                (bytes[2] & 0xFF) << 8 |
//                (bytes[1] & 0xFF) << 16 |
//                (bytes[0] & 0xFF) << 24;
//    }
//
//    /*小端，低字节在后*/
//    public static byte[] intToBytesLittleEndian(int intValue) {
//        // byte数组中序号小的在右边
//        // 右边的数据放到byte数组中序号小的位置
//        byte[] bytes = new byte[4];
//        bytes[0] = (byte) (intValue & 0xff);
//        bytes[1] = (byte) ((intValue >> 8) & 0xff);
//        bytes[2] = (byte) ((intValue >> 16) & 0xff);
//        bytes[3] = (byte) ((intValue >> 24) & 0xff);
//        return bytes;
//    }
//    /*大端，高字节在后*/
//    public static byte[] ConvertIntToBytes_BIG_ENDIAN(int intValue) {
//        // byte数组中序号大的在右边
//        // 右边的数据放到byte数组中序号大的位置
//        byte[] bytes = new byte[4];
//        bytes[3] = (byte) (intValue & 0xff);
//        bytes[2] = (byte) ((intValue >> 8) & 0xff);
//        bytes[1] = (byte) ((intValue >> 16) & 0xff);
//        bytes[0] = (byte) ((intValue >> 24) & 0xff);
//        return bytes;
//    }
   public  static final char[] hexArray = "0123456789ABCDEF".toCharArray();
    public  static String bytesToHex(byte[] bytes) {

        char[] hexChars = new char[bytes.length * 2];
        for (int j = 0; j < bytes.length; j++) {
            int v = bytes[j] & 0xFF;
            hexChars[j * 2] = hexArray[v >>> 4];
            hexChars[j * 2 + 1] = hexArray[v & 0x0F];
        }
        return new String(hexChars);


    }

    public static byte[] convertIntToBytes_BIG_ENDIAN(int data)
    {
        byte[] bytes = new byte[4];
        bytes[3] = (byte) (data & 0xff);
        bytes[2] = (byte) ((data >> 8) & 0xff);
        bytes[1] = (byte) ((data >> 16) & 0xff);
        bytes[0] = (byte) ((data >> 24) & 0xff);
        return bytes;
    }
    /**
     * 4位字节数组转换为整型
     *大端模式
     * @param b
     * @return
     */
    public static int byte2Int(byte[] b) {
        int intValue = 0;
        for (int i = 0; i < b.length; i++) {
            intValue += (b[i] & 0xFF) << (8 * (3 - i));
        }
        return intValue;
    }
//    public static String byteToInt(byte[] b) {
//
//        int intValue = 0;
//        for (int i = 0; i < b.length; i++) {
//            intValue += (b[i] & 0xFF) << (8 * (3 - i));
//        }
//        return Integer.toString(intValue);
//    }
//public static String byteToInt(byte b) {
//
//    int intValue = 0;
//
//        intValue += (b& 0xFF) << (8 * (3));
//
//    return Integer.toString(intValue);
//}

    public static int byteToInt(byte b) {
        int intValue = byte2Int(new byte[]{0, 0, 0, b});
        return intValue;
    }
}
